home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / lib.exe / PARMS.LIB < prev    next >
Text File  |  1992-02-02  |  2KB  |  179 lines

  1. #IF !LIB4A86
  2. #ELSE
  3. #IF !INTERN_LIB4A86_S
  4. INTERN_LIB4A86_S EQU 01
  5. JMP START
  6. #ENDIF
  7. #ENDIF
  8. CR EQU 0DH
  9. TAB EQU 09H
  10. BLANK EQU ' '
  11. #IF !PARMTRENNER1
  12. PARMTRENNER1 EQU '/'
  13. #ENDIF
  14. #IF !PARMTRENNER2
  15. PARMTRENNER2 EQU '-'
  16. #ENDIF
  17. V0 DB 0
  18. V2 DB 0
  19. SAVEPARAMS DB 0,80H DUP 0DH
  20. Q001 EQU ''''
  21. Q002 EQU '`'
  22. Q003 EQU '"'
  23. PARAMSTR:
  24. PUSH DS,SI,CX,AX
  25. OR AL,AL
  26. IF Z INC AL
  27. CALL INTERN_GETPARM
  28. MOV CL,0
  29. JNZ >L9
  30. INC CL
  31. PUSH DI
  32. INC DI
  33. XOR CH,CH
  34. LODSB
  35. CMP AL,CR
  36. JE >L91
  37. CMP AL,V2
  38. JE >L91
  39. L0:
  40. INC CH
  41. STOSB
  42. LODSB
  43. CALL INTERN_CHECKTRENNER
  44. JNZ L0
  45. L91:
  46. POP DI
  47. L9:
  48. OR CL,CL
  49. MOV ES:[DI],CH
  50. POP AX,CX,SI,DS
  51. RET
  52. PARAMCOUNT:
  53. PUSH DS,SI,CX
  54. MOV AL,0FFH
  55. CALL INTERN_GETPARM
  56. MOV AL,CL
  57. POP CX,SI,DS
  58. RET
  59. INTERN_GETPARM:
  60. CLD
  61. MOV SI,OFFSET SAVEPARAMS
  62. MOV DS,CS
  63. MOV V2,0
  64. CMP V0,0
  65. JNE >L1
  66. PUSH BX,SI,DS,ES,DI
  67. MOV AH,062H
  68. INT 021H
  69. MOV DS,BX
  70. MOV ES,CS
  71. MOV DI,SI
  72. MOV SI,080H
  73. MOV CL,[SI]
  74. XOR CH,CH
  75. INC CX
  76. REP MOVSB
  77. POP DI,ES,DS,SI,BX
  78. MOV V0,0FFH
  79. L1:
  80. CMP B[SI],0
  81. JNZ >L1
  82. OR AL,01
  83. RET
  84. L1:
  85. INC SI
  86. XOR CX,CX
  87. MOV AH,AL
  88. L0:
  89. LODSB
  90. L00:
  91. MOV V2,0
  92. CMP AL,CR
  93. JE >L9
  94. CMP AL,Q001
  95. JE >L001
  96. CMP AL,Q002
  97. JE >L001
  98. CMP AL,Q003
  99. JNE >L002
  100. L001:
  101. MOV V2,AL
  102. JMP >L003
  103. L002:
  104. CMP AL,BLANK
  105. JE L0
  106. CMP AL,TAB
  107. JE L0
  108. L003:
  109. INC CL
  110. DEC AH
  111. JZ >L9
  112. L01:
  113. LODSB
  114. CALL INTERN_CHECKTRENNER
  115. JNE L01
  116. CMP AL,V2
  117. IF E LODSB
  118. JMP L00
  119. L9:
  120. CMP AL,V2
  121. IF NE DEC SI
  122. OR AH,AH
  123. RET
  124. INTERN_CHECKTRENNER:
  125. CMP V2,0
  126. JE >L0
  127. CMP AL,V2
  128. JE >L1
  129. CMP AL,CR
  130. JMP >L1
  131. L0:
  132. CMP AL,CR
  133. JE >L1
  134. CMP AL,BLANK
  135. JE >L1
  136. CMP AL,TAB
  137. JE >L1
  138. CMP AL,PARMTRENNER1
  139. JE >L1
  140. CMP AL,PARMTRENNER2
  141. JE >L1
  142. CMP AL,Q001
  143. JE >L1
  144. CMP AL,Q002
  145. JE >L1
  146. CMP AL,Q003
  147. L1:
  148. RET
  149. #IF !INTERN_CMARK0
  150. INTERN_CMARK0 EQU 01H
  151. INTERN_CMARK1:
  152. PUSH BP
  153. MOV BP,SP
  154. MOV BX,06H
  155. SUB CH,[BP+SI]
  156. SUB AH,[BX+SI]
  157. DEC SP
  158. DEC CX
  159. INC DX
  160. XOR AL,041H
  161. CMP B[02820H],DH
  162. INC BX
  163. SUB W[BX+SI],SP
  164. INC DX
  165. CS AND B[BP+DI+043H],DL
  166. DEC AX
  167. INC BP
  168. DEC BP
  169. DEC BP
  170. INC BP
  171. PUSH DX
  172. AND B[BP+SI],CH
  173. SUB CH,[BP+SI]
  174. POP DX
  175. MOV SP,BP
  176. POP BP
  177. RET
  178. #ENDIF
  179.